package io.sk.common.base;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.sk.common.utils.ResourceUtils;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * Entity基础类
 *
 * @author King
 */
@Data
public class BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(type = IdType.UUID)
    private String id;
    /**
     * 创建人
     */
    private String createUser;
    /**
     * 创建日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;
    /**
     * 修改人
     */
    private String updateUser;
    /**
     * 修改日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate;
    /**
     * 删除标识(0:正常；1：删除)默认正常
     */
    private String delFlag;

    /**
     * 初始化公共属性
     */
    public void preInsert(String userId) {
        setId(ResourceUtils.getUUID());
        this.delFlag = "0";
        this.createDate = new Date();
        this.updateDate = this.createDate;
        this.createUser = userId;
        this.updateUser = userId;
    }

    /**
     * 编辑
     */
    public void preUpdate(String userId) {
        this.updateDate = new Date();
        this.updateUser = userId;
    }
}
